package PTA_05_18;

//假定要为某个公司编写雇员工资支付程序，这个公司有各种类型的雇员（Employee），不同类型的雇员按不同的方式支付工资（都是整数）：
//（1）经理（Manager）——每月获得一份固定的工资
//（2）销售人员（Salesman）——在基本工资的基础上每月还有销售提成
//（3）一般工人（Worker）——则按他每月工作的天数计算工资
//在Employee中提供函数getSalary()计算每个雇员一个月的工资，并在子类中重写。
//
//在main函数中构造Employee的三个变量，分别指向Manager、Salesman、Worker的对象，调用getSalary函数，输出三个对象的工资
//
//输入格式:
// 经理的月工资
//销售人员的基本工资 销售人员的提成
//工人的工作天数 工人每天的工资
//
//输出格式:
//经理的工资
//销售人员的工资
//工人的工资

import java.util.Scanner;

abstract class Employee1
{
    public abstract void getSalary();
}

class Manager extends Employee1
{
    private int monSalary; // 固定工资

    public Manager(int monSalary) {
        this.monSalary = monSalary;
    }

    public int getMonSalary() {
        return monSalary;
    }

    public void setMonSalary(int monSalary) {
        this.monSalary = monSalary;
    }

    public void getSalary()
    {
        System.out.println(monSalary);
    }
}

class Salesman extends Employee1
{
    private int saleSalary;
    private int upSalary;

    public Salesman(int saleSalary, int upSalary) {
        this.saleSalary = saleSalary;
        this.upSalary = upSalary;
    }

    public void getSalary()
    {
        System.out.println(saleSalary + upSalary);
    }
}

class Worker extends Employee1
{
    private int days;
    private int daySalary;

    public Worker(int days, int daySalary) {
        this.days = days;
        this.daySalary = daySalary;
    }

    public void getSalary()
    {
        System.out.println(days * daySalary);
    }
}

public class Main4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Employee1 p1 = new Manager(sc.nextInt());
        Employee1 p2 = new Salesman(sc.nextInt(),sc.nextInt());
        Employee1 p3 = new Worker(sc.nextInt(),sc.nextInt());
        p1.getSalary();
        p2.getSalary();
        p3.getSalary();

    }
}
